1. Field of the Invention
The present invention relates to integrated circuit memory devices based on floating gate transistor technology; and more particularly to high speed program verify for page mode flash memory.
2. Description of Related Art
Flash memory is a growing class of non-volatile storage integrated circuit based on floating gate transistors. The memory cells in a flash device are formed using so called floating gate transistors in which the data is stored in a cell by charging or discharging the floating gate. The floating gate is a conductive material, typically polysilicon, which is insulated from the channel of the transistor by a thin layer of oxide, or other insulating material, and insulated from the control gate of the transistor by a second latter of insulating material.
To store data in a floating gate memory cell, the floating gate is charged or discharged using a Fowler-Nordheim tunneling mechanism, or a hot electron injection mechanism. The Fowler-Nordheim tunneling mechanism is executed by establishing a large positive (or negative) voltage between the gate and source or drain of the device. This causes electrons to be injected into (or out of ) the floating gate through the thin insulator. The hot electron injection mechanism is based on an avalanche process. Hot electron injection is induced by applying potentials to induce high energy electrons in the channel of the cell, which are injected across the thin insulator into the floating gate. To induce hot electron injection, a potential is applied across the source and drain of the device, along with a positive potential on the control gate. The positive potential on the control gate tends to draw electrons from the current in the channel of the device into the floating gate.
The acts of charging and discharging the floating gate in a floating gate memory device are relatively slow compared to writing other memory types, like static or dynamic random access memory, and limit the speed with which data may be written into the device.
Another problem associated with floating gate memory devices arises because the charging and discharging of the floating gate is difficult to control over a large array of cells. Thus, some of the cells program or erase more quickly than others in the same device. In a given program or erase operation, not all the cells subject of the operation will settle with the same amount of charge stored in the floating gate. Thus, so called program verify and erase verify sequences have been developed to efficiently ensure that the memory is being accurately programmed and erased. The program and erase verify operations are based on comparing the data stored in the floating gate memory array with the intended data. The process of comparing data is relatively time consuming, involving sequencing byte by byte through the programmed or erased cells. If a failure is detected in the verify sequence, then the program or erase operation is retried. Program retries are typically executed word-by-word or byte-by-byte in prior art devices. Thus, bits successfully programmed in a byte with one failed bit are subject to the program cycle repeatedly. This can result in over-programming and failure of the cell.
One approach to resolving this issue is set forth in U.S. Pat. No. 5,163,021 by Mehrotra, et al., at column 19, line 10 at sec, FIGS. 14-17.
To improve the efficiency of program and program verify operations, so called page mode flash devices have been developed. In these devices, a page buffer is associated with the memory array. The page buffer includes a set of bit latches, one bit latch associated with each global bit line in the array. To program a page in the array, the page buffer is loaded with the data to be programmed, by transferring byte by byte the program data into the bit latches of the page buffer. The program operation is then executed in parallel on a bit line by bit line basis controlled by the contents of the bit latches. The verify procedure is based on clearing automatically all of the bit latches in the page buffer which are successfully programmed in a parallel operation. The page buffer is then read byte-by-byte to confirm that all bits have been cleared, indicating a successful program operation.
The page mode program process is described for example in commonly owned prior PCT Patent application entitled ADVANCED PROGRAM VERIFY FOR PAGE MODE FLASH MEMORY, filed Jan. 5, 1995, application Ser. No. PCT/US95/00077. In this application, the program verify operation relies on the sense amplifiers in the memory, which are limited in number, typically to 16, to sense the state of the memory cells being programmed. If the cell is programmed to the proper state, then the bit latch is reset based on the sense amplifier output. The sense amplifier is used because of charge sharing issues which arise from attempting to sense the level of bit lines in the memory array by a latch structure. The bit latch structure typically requires a significant current to reliably reset the latch. The sense amplifier circuit is able to provide sufficient current to reset the bit latch, while the bit line current through the memory cells is normally low due to the small geometry of the cells.
Other attempts at page mode program verify circuits have been made. For example, Tanaka, et al., "High-Speed Programming And Program-Verify Methods Suitable For Low-Voltage Flash Memories", Symposium on VLSI Circuits, Digest of Technical Papers, 1994, pgs. 64-62. The Tanaka, et al., paper describes a system in which the bit latches are directly coupled to the bit lines of the array. However, in the design proposed by Tanaka, et al., the bit latches directly fight the bit line voltage. Thus the bit line is required to conduct sufficient current to flip the bit latch. The design is therefore difficult to implement efficiently, and the data integrity is questionable because the bit line and latch fight for charge during the verify sequence.
Another prior art approach is described in Suh, et al., "A 3.3V 32 Mb NAND Flash Memory With Incremental Step Pulse Programming Scheme", 1995 IEEE International Solid-State Circuits Conference, pgs. 128-129 (Feb. 16, 1995). In Suh, et al., a page buffer structure is described in which a current mirror structure is utilized to boost the driving capability of the bit lines for resetting bit latches. In Suh, et al., during the verify operation, the wordlines are pumped to an increased voltage to double the cell current. A current mirror is coupled with each bit line to fight with the cell. After waiting enough time for the bit line to discharge, a parallel reset of the latches is based on resulting the bit line voltage. The reliance on a current mirror in association with each bit latch requires extra current drive capability during the verify process, and increases the complexity of the circuit.
Neither Suh, et al., nor Tanaka, et al., describe bit latches be for use with processes which involve applying a high voltage to the bit lines, as required for some types of floating gate memory program or erase operations.
An improved page buffer which operates with low current bit lines, and is capable of supporting program, program verify, read and erase verify processes in a page mode is desirable. Furthermore, it is desirable that the page buffer be useful for applying high voltage pulses to bit lines based on the contents of the page buffer. With these improvements, a high speed page mode flash memory can be provided.